home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 11 / Amoszine 11 (Disk 2 of 2).adf / Demos_Source_II.lha / Demo4.Amos / Demo4.amosSourceCode < prev    next >
AMOS Source Code  |  1992-09-02  |  3KB  |  97 lines

  1. ' *************************************
  2. ' *                                   *
  3. ' *            Demo 6 V1.0            *
  4. ' *      Written by Chris Hodges      *
  5. ' *                                   *
  6. ' *************************************
  7. '
  8. Close Workbench : Close Editor : Hide 
  9. 'Load "LostInTime.abk",3 
  10. Unpack 10 To 0 : Screen Hide 0
  11. S$=" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789?!.-:"
  12. For A=0 To Len(S$)-1
  13.   Get Block Asc(Mid$(S$,A+1,1))-31,(A mod 7)*48,(A/7)*72,41,72
  14. Next 
  15. Screen Open 0,784,72,8,0
  16. Curs Off : Flash Off : Cls 0
  17. Screen Display 0,128,209,320,72
  18. Palette 0,$FFF,$DDF,$BBF,$99F,$77F,$55F,$33F,0,0,0,0
  19. For A=15 To 31 : Colour A,0 : Next 
  20. Screen Open 1,640,72,4,0
  21. Palette 0,0,0,0
  22. Curs Off : Flash Off : Cls 1
  23. Y=Rnd(40)+20 : YY=Y
  24. For X=0 To 319
  25.   Ink 2 : Draw X,Y To X,Y+Y/2
  26.   Ink 3 : Draw To X,72
  27.   Y=Min(Max(Y+Rnd(4)-2,20),60)
  28.   If Abs(Y-YY)>319-X Then Y=Y-Sgn(Y-YY)*2
  29. Next 
  30. Set Rainbow 1,9,72,"","",""
  31. R=0 : G=0
  32. For A=1 To 72
  33.   Rain(1,A-1)=R*256+G*16
  34.   If A and 1 Then R=Min(R+1,15) : If R=15 and(A and 4) Then Inc G
  35. Next 
  36. Screen Copy 1,0,0,319,72 To 1,320,0
  37. Screen Display 1,128,209,320,72
  38. Wait Vbl 
  39. Dual Playfield 0,1
  40. B$="L R2=Y; A: L R2=R2+1; P; L Y=R2; I R2>279 J B; "
  41. B$=B$+"D: L R0=V("
  42. C$=") ; I R0>0 J C; "
  43. C$=C$+" J A; "
  44. C$=C$+"B: L R2=279; J D; "
  45. C$=C$+"C: L R2=279-R0; J A; "
  46. For A=0 To 3
  47.   Sprite A*2,158+A*80,232,3
  48.   Channel A+1 To Sprite A*2
  49.   Amal A+1,B$+Str$(A)+C$
  50. Next 
  51. Channel 7 To Screen Offset 1
  52. A$="L X=1; A: P; L X=X+2; I X<320 J A; L X=1; J A; "
  53. Amal 7,A$
  54. A$="L R0=0; L R1=350; "
  55. A$=A$+"A: P; L Y=R0+R1/10; L R1=R1+R0; L R0=R0+2; I R1<1250 J A; L R0=2-R0; L RA=1; J A; "
  56. B$="L R0=23; L X=630; A: P; L X=X+R0; I X>640 J B; L R0=R0+1; J A; "
  57. B$=B$+"B: L R0=R0-1; J A; "
  58. Channel 5 To Screen Display 2
  59. Channel 6 To Screen Offset 2
  60. Unpack 9 To 2
  61. Amal 5,A$
  62. Amal 6,B$
  63. Screen Display 2,128,60,320,91 : Screen To Back 2
  64. Rainbow 1,0,208,72
  65. Amal On 
  66. Mvolume 55
  67. Music 1 : Tempo 17
  68. Screen 0
  69. Colour 10,$100 : Colour 11,$200
  70. Colour 17,$FF : Colour 18,$CC : Colour 19,$88
  71. Colour 21,$FF0 : Colour 22,$CC0 : Colour 23,$880
  72. Colour 25,$F0F : Colour 26,$C0C : Colour 27,$808
  73. Colour 29,$F0 : Colour 30,$C0 : Colour 31,$80
  74. S$="HOTSOFT PRESENTS THE LATEST DEMO WRITTEN IN AMOS!  EVERYTHING WAS "
  75. S$=S$+"DONE BY C. HODGES!        ALL MOVEMENT IN THIS DEMO IS CONTROLLED "
  76. S$=S$+"BY AMAL EXCEPT THE SCROLLER.   IT IS THE ONLY THING I MUST MANAGE "
  77. S$=S$+"WITHIN THE MAIN LOOP.    IF YA WANNA EVEN MORE OR NEED SOME HELP CONTACT "
  78. S$=S$+"ME!     SEE YA IN THE NEXT DEMO!!!           "
  79. S=0 : PX=31
  80. F=Free
  81. Sprite Priority 0
  82. Repeat 
  83.   Add XX,6 : Add PX,6 : If PX>48 Then Gosub NL
  84.   Screen Offset 0,XX+55+SP, : Wait Vbl 
  85. Until Mouse Key
  86. Amal Off : Sprite Off : Rainbow Del : Music Off 
  87. Screen Close 0 : Screen Close 1 : Screen Close 2
  88. Del Block 
  89. End 
  90. NL:
  91.   PX=PX-48
  92.   XX=XX+(XX>383)*384
  93.   Add S,1,1 To Len(S$)
  94.   B=Asc(Mid$(S$,S,1))
  95.   Put Block B-31,384+XX-PX,7
  96.   Put Block B-31,XX-PX,7
  97. Return